<?php
/**
 * @title 1590. 使数组和能被 P 整除 - 暴力破解
 * @author start2004
 */

// ini_set("memory_limit", "128M");

// class Solution {
//
//     function find() {
//
//     }
// }

class Solution {

    /**
     * @param Integer[] $nums
     * @param Integer $p
     * @return Integer
     */
    function minSubarray($nums, $p) {
        /**
         * @since 2020-10-14 求和
         */
        $sum = array_sum($nums);

        /**
         * @since 2020-10-14 取模
         */
        $mod = $sum % $p;

        /**
         * @since 2020-10-14 找到目标子数组
         */
        if($mod == 0){
            $result = 0;
        } else {
            /**
             * @since 2020-10-14 最短子数组长度
             */
            $result = -1;

            /**
             * @since 2020-10-14 长度
             */
            $len = count($nums);
            echo "len={$len}", PHP_EOL;

            /**
             * @since 2020-10-14 和数组
             */
            $sumArray = array_fill(0, $len, 0);

            /**
             * @since 2020-10-14 长度从1到len-1
             */
            // for($i=1, $iMax=($len-1)>>1; $i<=$iMax; $i++){
            for($i=1, $iMax=100; $i<=$iMax; $i++){
                /**
                 * @since 2020-10-14 起点位置从0到len-$i
                 */
                for($j=0; $j<=$len-$i; $j++){
                    $childSum = $sumArray[$j] + $nums[$j+$i-1];
                    $m = $childSum % $p;
                    if($m == $mod){
                        $result = $i;
                        $i = $len;
                        break;
                    } elseif($m == 0) {
                        $result = $len-$i;
                    } else {
                        $sumArray[$j] = $m;
                    }
                }
            }
        }

        /**
         * @return
         */
        return $result;
    }
}

/**
 * @url http://127.0.0.1/leetcode/202010/2020.10.14_5.php
 */
$datas = [
    [[52976,84248,8692,39459,31708,90925,25758,1467,3226,12089,42423,80084,51565,73096,86986,3784,60083,28013,44065,20100,11117,8988,24896,34826,64458,62705,32351,71813,30376,18106,19044,33608,35182,89084,32707,49673,76514,44980,71623,20599,62022,85814,95922,90644,46203,26292,61169,52575,33538,29288,12869,73306,69924,53240,65242,96563,187,35732,89072,52483,14908,19407,25258,32387,43065,59714,96238,93229,15943,48138,35329,41253,37189,29548,55655,58171,522,16187,57147,34278,15657,33975,20340,57499,17383,48298,12601,14537,73804,30950,58066,35567,81893,42921,65285,52300,88270,29750,87087,58554,12441,38453,82622,95751,52825,51877,41963,95793,77625,92941,27367,67517,76741,87358,79239,24310,32276,14828,66572,30976,48040,28995,62604,56519,60238,77354,56369,87575,77035,39408,4353,77523,41013,7611,59777,17791,79329,76592,25254,48985,91243,69201,20393,47630,76771,15103,82780,41058,29055,5714,59701,45020,73004,11666,71746,95403,42594,56306,25236,31443,72612,31187,33031,60416,46064,41713,74947,48419,65328,31970,18563,317,28627,28559,44020,33439,6688,63384,15524,23446,42489,8693,25087,78928,52717,76179,77059,26142,84241,31931,79499,10424,15597,27813,5957,85889,35588,59456,60529,50457,73347,21232,96435,51499,52324,16539,16402,56596,20101,52371,91707,58611,10698,10598,31355,9718,25623,66579,28678,3107,95281,12980,57075,41717,89411,34093,96847,90338,81584,45229,71085,48533,90693,39676,48932,76861,4418,51999,51638,85331,22286,31034,30892,36734,80466,3470,25632,34203,43417,32635,54342,76182,52834,91072,90822,663,317,71157,49265,57735,1710,54415,4631,82385,59057,10176,46061,38955,59706,36001,81710,93369,54782,78130,10660,83933,23640,42382,70385,43551,35086,76706,34166,59636,82943,29322,59125,88492,91278,64895,61879,68296,40409,39203,46278,67404,62386,31752,45065,51116,86769,977,50773,44594,748,37395,39844,92070,62346,8406,8404,73246,4290,2818,91582,15292,3908,52498,1618,31799,25725,12316,8238,29881,77641,71812,90242,25500,31443,981,2209,28388,64556,8243,87022,65337,15339,65373,27545,91050,57417,86067,95166,40507,35007,42051,87234,68554,76222,47255,71947,4215,93419,61454,65279,78497,79614,94963,42733,72155,35101,20435,22893,46034,59171,15839,47607,82087,56095,26184,81180,28434,65094,24920,4412,6762,85150,23083,44604,90853,41324,33672,81857,10054,16357,18504,69531,44108,46628,4621,80722,61550,22593,75807,22415,5624,40711,23951,26990,33867,33377,34740,93574,87105,86937,73495,16062,13841,71485,57893,20192,90629,62363,77678,55269,92275,64781,31381,21524,52425,91850,5224,12470,66806,18935,7877,27932,80825,94661,82109,16,36736,44167,12965,6604,67811,10266,6938,65113,91080,4877,57179,85478,9989,31915,11908,31373,44762,9761,20101,41450,65384,61320,81418,17551,33510,85067,10152,62381,69063,83161,39519,58126,74346,72559,91178,28228,92067,45659,88405,75900,89667,37369,53409,52617,31017,56570,85539,74656,86042,40192,82261,85496,38767,61410,50955,60988,74704,14174,94921,78253,26331,63678,70986,93182,11514,45430,3328,59156,92834,21547,38231,95949,27043,38128,32872,87323,88033,7732,57946,8161,67804,11616,74303,86684,94231,36739,96237,50212,78358,92755,77836,64808,74041,29779,96055,80030,83915,90909,31168,59258,58327,7698,9435,7279,80278,79053,35902,77139,88452,28237,55191,56988,47859,9050,63178,73179,19840,38266,6165,56035,80536,82732,43073,35502,45441,96035,86002,74362,22024,6023,8068,15079,66747,30874,25864,58565,18983,31548,51988,28926,63231,30041,13994,64854,83686,21079,20538,34351,95931,72317,71447,58015,28386,8261,29239,67550,51964,43376,10911,42362,48920,97284,14999,92176,57058,2659,3474,62849,19699,8022,24168,58207,45510,88727,66884,62142,55835,26966,89218,48183,5831,31910,27232,2983,74712,57796,45349,11973,73568,35311,65922,91907,46284,53681,83201,16210,31749,65227,67971,7865,37633,46231,53824,23224,37398,47153,6783,62449,73605,42608,54922,51717,20307,31202,56423,8826,4239,35770,40430,74326,68458,97223,54434,8262,17758,20574,28085,74613,25575,49543,14647,731,39450,68303,85109,66276,81383,4527,947,81752,45189,42358,74176,9983,32785,92152,31446,97164,50453,95465,51837,83567,46535,71524,43596,39964,20437,59564,47520,2878,94880,86943,55287,27440,67802,73980,83685,51686,21188,46590,35569,46739,91575,10029,38101,92039,81643,540,63978,45135,48392,97465,87206,37261,34012,90138,62983,55745,74802,59075,72781,41336,48045,52871,90534,48361,24222,8727,87425,72690,58239,73424,41447,5709,81260,87611,69692,42290,16340,14805,83879,69614,78378,16896,40899,50623,46779,85355,29776,58808,82636,33588,63858,91554,34134,32489,71260,7847,50575,16831,32147,50323,11669,78008,2185,15058,75127,19335,9674,87422,63830,96256,67593,4369,3951,37425,33576,31138,73082,43255,35740,50387,40808,77749,46688,38823,20109,38316,63296,19654,96215,9068,96430,55245,49644,31127,53920,2805,91353,77428,63630,49860,5048,936,50776,39954,28615,9040,29561,86047,35084,33573,38772,19101,60408,21130,53423,59237,26927,41465,25691,34244,19935,48194,7054,82039,78670,49434,5099,62298,84960,93502,78155,53890,77183,42721,10242,16952,69702,58113,48759,11648,81519,13755,94305,6625,68041,3425,7764,89409,65994,32125,27862,83511,74183,54079,78134,77130,62285,72723,24665,45150,85410,95484,14770,39693,43947,74009,60637,30652,93351,72683,57231,82247,61551,6414,3946,8581,21968,10711,23468,67368,70978,45515,55275,61324,71291,2920,15209,61300,73934,39884,47298,20455,88409,77318,93484,45962,39851,95908,49487,76471,10855,49594,76923,90824,19431,51908,8563,19162,82149,19872,77022,78761,20188,40863,28737,48988,9853,77850,46312,44725,36257,76798,50321,60837,342,87441,51164,48610,58252,21083,93397,4242,36774,33284,28792,39665,37749,3808,43601,47794,72216,7454,1081,69571,22742,15008,46900,31226,93333,59799,23103,93802,88354,65810,4379,25255,2937,36640,76243,9598,33128,57913,64114,90095,37946,39309,56320,4798,81444,46558,97164,30124,5165,3172,82569,93541,90042,63555,90399,35594,41009,49135,74592,75986,9214,38194,82055,39109,25355,16750,16819,87222,781,39219,32899,75113,95101,84040,13883,23258,367,60710,3139,77829,83152,26466,97321,45215,62087,57481,95081,94649,9231,29763,73136,25850,57402,42510,89744,6126,38150,51526,39618,21923,77974,53856,7611,52169,39789,74649,64854,75366,18454,50611,34750,80080,35914,52223,21576,30174,54113,1074,13631,47870,18353,71457,13621,5508,31301,51010,12310,48342,21616,50949,26957,72471,47022,85573,9857,69419,94051,50603,79122,78481,38886,6290,61284,93211,4068,33127,72927,81962,59148,85605,72812,34280,22288,73275,55758,54459,84225,51425,69745,53861,66424,73148,19545,45837,58130,990,48677,8363,69547,41875,46388,36938,95563,12520,83122,73048,4670,65544,58002,82279,82176,19117,24197,71853,33071,38807,59810,34864,37009,48712,24800,59895,12290,42175,36407,33174,66164,55019,67858,14768,51753,22568,68096,46536,43920,46724,50507,63911,27405,70522,80029,47655,12308,64851,65912,36432,22552,78555,34,4477,39129,18196,89218,17244,24646,16481,94304,73499,68956,40476,58222,77457,7858,18734,13989,87332,59703,62820,63749,46593,39288,20499,62436,65498,4097,23019,33945,45797,40401,82243,50802,14817,90378,11809,92587,35958,19139,71475,54634,82347,71069,41870,62285,25443,73502,59305,49585,96448,18025,51358,52199,5764,94794,45674,16048,67546,25122,29828,70823,46341,46646,4400,69480,48736,88228,74805,607,16577,84803,66014,45020,38106,97570,83819,28760,79949,56736,83716,42048,15608,57789,84692,15040,64208,20693,7728,92897,71642,14305,79608,69548,7151,13488,78307,59365,81071,48949,4049,45384,25804,20405,38079,82877,59731,57187,92729,18492,23337,97217,75167,51269,59837,28794,48518,88808,33083,90084,41678,55439,47908,55073,73975,41471,96053,92129,39772,97441,64996,38231,25793,23421,29485,70148,93617,1281,74431,70137,61469,16388,46550,64038,85071,84779,18807,82831,71073,91641,7663,60801,77149,69452,90944,53800,65873,47851,53906,61130,77156,68985,59159,33459,26725,73131,26327,93457,66452,93346,23161,5999,94072,73177,44159,89263,10010,20086,5904,73926,81004,81909,47326,73920,43198,35745,70914,11892,77203,2377,91098,27019,40890,78315,8192,54125,87188,93175,13318,1547,75468,62654,66016,84480,58944,28084,93064,41539,86576,552,21605,20007,48569,7790,55154,68203,12566,89103,58300,62897,24934,61265,52373,44447,32750,64188,60082,40620,4799,71584,49772,54211,42127,14136,188,16879,35864,29371,96850,51904,93806,6240,25751,63655,52354,94989,25498,49706,77037,8836,48474,36107,49241,85235,37941,32142,15936,94091,30547,74558,65497,50721,34254,85710,49777,64049,48112,52938,88169,53755,7135,11988,71504,89357,89600,77031,60572,29528,10257,91126,66059,34870,66036,13782,97361,46757,17300,50881,96755,28929,43547,84004,18508,27067,53371,56761,85707,88150,85165,64377,94503,27482,39834,83029,34616,97042,61552,52007,5826,74468,12020,37113,78701,27656,27374,21014,72592,36186,97292,12939,95615,25415,82496,83137,83868,21499,91971,65943,44503,86997,47456,87437,87894,67350,254,43352,88159,82617,44764,51119,42036,5164,88389,39465,17773,1871,60342,20778,50624,67216,26314,74226,93404,33181,2131,70492,87358,93759,52384,57437,39924,93860,73236,53041,36642,25715,66236,71013,81695,62478,44998,56947,29564,76988,25986,11215,58281,8664,27460,74252,51276,37425,13909,85357,2501,52024,43778,55052,39168,21858,49520,33955,2888,78479,16057,68931,56108,69243,36136,37557,81576,65732,22181,29193,7932,57556,59515,16799,37178,5904,65448,22830,25806,1795,47226,20738,43407,87593,22291,64503,58960,90291,87506,23429,57151,57944,89700,55569,6428,22706,71942,68948,81255,26287,15536,33418,13456,79717,85978,40531,96956,66641,10123,62352,89293,54800,34562,64191,28199,44017,58639,89554,93368,37829,50053,13368,24483,18467,50809,49597,28985,38158,78214,38334,13990,46577,23872,66157,94875,10178,40957,27406,77944,86988,11495,32270,80063,11450,60982,14060,82646,45590,63862,58333,52489,94714,16266,76333,26038,48662,33828,36969,61166,32060,35912,2295,13891,1306,13356,27142,81280,30487,13786,61574,94460,53711,55604,6610,44237,4611,7511,4909,12521,73517,51876,41808,79284,65682,62900,89173,87823,50184,19695,20209,23387,56715,82096,90483,22579,82133,11408,82679,65468,93717,5036,86823,97335,68662,19750,97247,44782,31261,68501,72151,53604,67028,13280,79314,31011,95271,23183,7541,84992,36657,79383,40134,27190,84002,16106,84804,64022,54508,19968,67099,36854,65946,87285,6639,13106,51997,55581,67643,63319,39291,4024,54237,7054,50103,72038,96884,93144,89528,74844,91343,22779,94718,43420,17638,50701,36694,43760,70152,94814,41578,53957,2818,43157,6302,26146,24520,43783,39155,11690,50144,21425,96793,19533,91305,73484,41352,26861,81114,95511,3708,88556,53690,60507,67246,42093,14792,64535,94390,3760,42121,26920,10290,24134,26979,37029,36747,84314,50802,7957,64607,58499,9406,11115,35589,73310,54623,91505,52984,84513,61851,14393,39479,12173,57485,57555,54412,53387,541,61853,23622,17876,39488,31205,52072,3432,68988,28118,43725,17873,80150,32278,79871,16969,49433,26643,63186,25165,93743,72355,25438,33839,39742,66321,55826,14127,7417,5409,32239,95082,31774,76161,92401,45433,30500,84529,40827,52591,1672,88388,4197,59586,20950,35431,71774,81484,1824,889,25409,80359,10478,21647,38208,68549,34946,86549,88150,80066,51200,54381,4787,92692,33830,15560,79059,83879,1291,95134,21288,41180,92563,22938,62832,74961,44742,86154,42322,12689,10458,88625,47333,27524,31712,78172,20626,43125,46410,32257,49674,75617,91470,69922,41516,60703,92170,2610,42210,94088,49172,37268,64177,67905,68068,79965,84250,70722,39478,76319,60737,64190,41354,62854,78038,9976,24243,14130,28278,19045,49470,12730,4299,17549,41555,94818,7159,52695,76976,46895,44001,60403,47232,61242,17705,64337,15556,67006,6923,21795,17499,63265,86787,35226,42833,84082,13238,48419,67637,58865,49626,36619,36725,19280,88485,65409,3882,91899,45904,9732,3141,57143,83059,47100,74781,62295,38900,96714,63269,3103,80241,56175,25494,78717,16733,1971,66334,78911,58444,74283,27379,6880,27850,31893,84966,37506,90000,3833,50386,34585,36062,39775,1859,51354,39060,55712,47957,29596,55954,60238,95224,59318,79397,78750,4561,10574,50505,17355,72841,37640,19407,13851,16673,53152,21227,17378,1679,52123,34697,58801,12688,62669,60291,78231,14543,45899,42633,93574,59034,47839,20604,77569,4508,25724,18633,54008,9722,38702,242,18685,54016,79364,62027,87167,564,84537,62043,9426,95667,29670,50877,62506,25003,11663,57610,52062,27189,25428,6263,67771,46127,30627,32441,48594,12293,49569,21092,12865,20850,63039,44993,18253,89997,13405,50249,25264,5402,31843,58692,20542,44269,92664,93132,20954,19908,10300,93880,78284,2643,55766,48287,9253,58403,91246,42752,61187,27711,13490,40889,60492,82342,74095,4666,81993,96724,90266,62334,44672,59175,54084,46648,34135,94305,24239,13183,23937,38501,33699,19923,84295,30273,95143,96815,77208,46617,70876,1111,96561,87871,12579,67590,18000,46123,24135,90221,10937,56264,7195,27258,31703,19030,65774,67892,96755,22735,24683,39675,84045,20972,53931,30354,5061,66057,45436,45983,64335,34461,42755,37432,48430,14383,16562,659,30576,31986,93341,4149,51821,94500,91621,13982,65134,92354,80310,35079,92690,75636,89814,8244,87054,26509,75454,23434,9761,78835,5248,57395,51214,46307,40822,77568,72550,62357,11802,14943,63453,42127,49343,61280,73505,60517,19874,33171,52039,94780,91820,44364,55848,11443,15303,90038,10173,15356,19967,36090,35009,70786,72709,99,19259,93953,13733,28262,9901,23515,40431,51399,85981,25544,26259,21050,83898,77678,78440,83493,295,58825,56870,57304,1037,86981,84187,80662,90418,29070,83543,75155,65246,41726,63836,52694,63643,92997,314,66403,79170,2713,65520,38282,69412,85859,7845,47899,7747,7081,11865,7849,14703,83413,63647,60714,10716,11130,67848,34918,50186,46926,13155,9291,6363,85947,21493,43514,94250,60467,51439,89019,90355,4451,48059,44013,9814,9958,19946,75137,18922,95799,73913,89704,24788,67229,3805,59527,10465,16779,9752,97566,25313,10900,59960,45603,39098,52953,65760,2636,67901,51812,87984,94609,40379,46228,49984,14731,56421,89441,31218,70848,57057,2994,26972,68957,68834,62394,54432,58394,85171,63831,95289,59390,95780,30891,75217,36284,62201,33092,14379,34626,66129,96798,64934,71681,60444,31131,93489,68750,41561,67289,48107,45168,71609,68252,51592,11592,20457,67047,11873,10434,37705,71914,94132,83217,32679,94352,77038,31645,85406,46117,11349,55825,79701,2470,57722,84157,66973,16609,6315,42674,47812,50180,15383,17964,38541,70231,59004,41284,38422,70946,35496,42607,47716,14452,59484,95294,97358,54156,69734,39138,86440,85,37887,19961,79918,21316,94127,21353,31254,96365,61406,80347,44570,46823,5528,67920,2765,30783,8491,44864,71971,76111,81657,86901,41311,70190,93619,9631,37658,60780,35015,18507,26292,6944,22783,82380,65071,29629,41678,87421,65551,20420,44484,90984,46061,79660,84599,11966,41504,95224,23640,6341,39208,66039,30506,28574,14935,91316,40646,33345,79481,43126,34470,32550,80094,28010,28975,84721,105,88082,97395,83318,67118,41890,809,48445,53266,93888,78074,34789,54111,83330,51510,15366,77758,47936,8762,15530,76553,48744,50861,39120,74657,57230,15775,15994,43234,95334,73512,12717,37411,5751,89335,6513,21659,62384,18359,20496,80701,94586,18322,69906,31997,72954,31304,27794,78398,25971,38488,77698,75942,46367,77057,22779,40022,40271,5321,41018,17924,93580,50231,11415,72543,46575,78847,60535,25352,92142,67503,60995,26559,81151,70254,14439,48339,57722,79920,34899,83194,81623,3983,42437,708,42639,86465,82155,79961,5893,76868,42004,86960,15563,23245,20943,92759,55890,89809,59055,55398,81153,15912,35041,20796,65196,57428,90088,69342,58371,69161,23958,49140,13524,40338,68123,96170,77239,84658,97041,34024,39860,81753,6658,90150,30389,32826,90269,89173,39713,914,52087,38145,26495,71790,33688,59958,10880,34713,95131,52607,90994,78753,50262,53047,95098,23912,70916,5181,43233,19812,38980,3179,27308,53359,50878,65842,78339,45711,2387,70685,97413,96808,44070,69943,41419,60851,65276,9137,9404,27015,16357,23119,26784,53296,10590,79137,78468,76495,90983,88164,45540,28104,85653,42764,81294,3446,97005,8860,14902,8639,53472,86854,84713,41880,3774,54258,57664,94436,85971,3126,46302,57107,35726,43766,48587,57294,14278,24708,35747,34756,81532,26198,58120,71770,39108,11333,67432,40410,20721,24528,35610,96420,95792,93869,21884,63637,13902,56664,74679,63590,18668,68176,63497,41565,51764,74296,51501,43721,17786,10332,45311,50831,73001,49931,83354,48623,76893,65720,50450,8613,33469,76940,84247,52353,58880,82751,87700,90322,52602,61032,34429,89903,78569,9222,58323,73391,43900,91506,634,9027,60574,86863,23814,54256,83879,78437,49896,61473,4095,36676,28340,53777,57383,25699,43145,88078,70990,62798,43430,79089,62212,35374,9505,3296,22109,69846,29764,33749,27444,777,84007,92413,75111,96758,47168,13278,13476,20808,93494,45067,72304,27560,42966,17649,29565,22602,32366,29717,32681,17270,89804,19136,54047,10015,47259,37838,25886,6828,88768,55566,39565,41976,96403,55199,29505,61594,41932,4015,10490,86315,72119,39522,13804,71224,21005,94438,66602,23090,14716,14832,64163,72450,80948,91673,72679,80320,86781,62442,4737,79758,82916,17424,72330,13121,50026,5961,23166,42424,68420,15777,86098,24129,3681,48601,41438,30502,28205,81995,72744,15502,80798,85321,5529,53143,52811,55779,22621,56595,11471,42130,65578,28430,28867,45998,38977,73802,83164,3506,76891,78871,65594,21366,82742,39415,80643,24666,12710,26172,13554,31240,4494,14017,61900,88429,58613,88570,49873,33644,14583,29696,7095,85131,81560,4646,19347,25825,9097,63536,71440,2031,53525,76881,60844,65535,62035,59043,24168,82273,38907,11222,45550,69949,10440,29013,15225,19520,60331,21132,3794,82760,17074,51581,10680,23793,72238,45414,69404,85950,59842,22674,17929,95140,6106,50752,30033,94623,28637,36613,42972,26265,30451,31730,13113,26080,8617,71336,32703,4028,25365,68656,96435,79779,26358,9222,59411,95663,46305,74460,37216,39749,89816,56416,12044,38164,40486,50078,13113,24010,38607,60897,41973,80459,21416,32540,71754,85057,16973,49367,79853,44746,34136,24391,41176,28617,62850,37793,85081,47527,53211,95530,90463,66658,94453,1528,609,2446,9668,63122,50796,54727,97487,35462,42736,11886,97596,7469,36464,64057,7645,4084,16237,60633,87203,69913,13315,89409,62517,83030,58047,136,1218,58028,81130,51076,36482,27786,41404,74991,41983,46897,21682,70869,82080,76061,79263,93604,61960,94370,89567,87183,31830,80942,46827,95462,69217,93111,97494,96924,92470,19813,31579,95220,64261,67456,14721,75007,15519,76077,60104,60146,79875,50730,4923,81350,15466,23799,11330,33507,82842,36053,80571,7462,32293,50137,62107,81006,51649,88460,49349,54624,61612,80462,23264,688,32042,44564,86563,84047,81795,97500,80968,47048,46276,90620,59421,82206,6477,73222,31648,49684,52228,87293,30381,91294,31433,44129,96927,94954,46319,93624,17048,16863,71983,67063,38965,92953,6591,83892,91471,76931,19422,37165,48063,10846,15071,89220,82083,64088,8115,86745,58790,78472,18478,41922,87633,39076,7196,71709,64327,2766,93212,43911,7986,82612,8796,52195,5238,82747,60124,67879,89754,68650,56488,54265,69927,45117,10426,94021,13564,9712,61736,93388,91491,8613,17925,15063,57176,85542,6657,65726,25177,79089,88692,57977,92826,61065,67523,7257,50428,87105,61053,48680,161,38589,66586,45966,40341,28343,16298,52046,94705,47766,88912,34763,22251,17696,58946,38574,87608,9030,1703,27232,74552,9282,8407,82901,16795,20934,11967,42397,33878,38183,62479,59631,44393,48320,30024,19421,5834,66383,90363,65398,75762,19863,90042,93474,39578,1357,1884,47723,78204,61553,63969,19407,37494,20322,30371,70191,23257,53055,60350,59327,191,96575,47301,62362,21028,5506,79400,67110,44026,25136,31655,32446,10554,78723,81936,93575,69466,56366,42668,93893,27544,86465,58244,51656,47038,92636,58463,81538,35924,70310,84781,86198,22797,53172,44851,89297,64242,26137,85809,55657,26346,45026,93518,43030,69184,4653,23619,96571,82123,55297,71871,69341,12719,81822,38404,87494,35933,463,71284,27544,54880,96154,88798,48771,31162,16220,42379,20284,55177,88163,74617,23188,10316,86961,22852,36523,48343,95962,582,80879,88715,25629,86489,84380,80233,37101,7762,36098,96120,18277,81343,16792,15903,63896,54117,71524,21797,76069,65565,16427,77567,1293,47649,3575,29610,52720,17256,61416,55901,34039,22667,4942,63035,27649,39695,86266,39209,6770,95144,6374,12410,40807,16976,31055,88392,15699,40682,57405,62405,30291,19310,73279,52762,12794,71822,33872,40869,32196,46969,2639,70711,68419,39960,90132,7942,82863,2861,28021,41264,1915,11580,574,34586,24738,11942,69926,77205,90675,25817,22429,51502,4933,86651,72866,39837,48735,76058,26024,75480,39563,37471,18564,66636,58295,41344,92275,5733,74422,44946,23222,41812,18733,12567,79394,10763,16406,22766,17456,72590,87980,36919,2726,66873,12441,21404,61636,82958,41797,62897,97355,62462,64604,27717,66075,61657,82672,27449,39005,65744,70239,78117,25789,58497,86010,67740,26834,33909,14085,39378,68085,49748,13951,91680,39401,22332,87838,76162,63046,90944,47669,91538,38472,90264,9030,78343,61922,30507,60020,51418,34003,46284,54792,40307,10836,19933,9297,65951,93085,54542,77255,62609,54802,72562,36215,19317,50179,56544,9162,48548,55450,89161,29557,1100,41470,74484,12713,91804,89295,66783,13728,83228,24838,19199,61062,88212,55596,48788,91514,81340,34934,478,21780,25985,24957,57405,46087,50027,1126,27809,50318,78370,91895,86626,28574,71629,84162,20936,31152,86837,68009,11644,65337,82190,86160,39938,59256,88674,14945,81964,23651,37142,11464,87056,51750,32921,85215,71887,69170,50444,16020,68207,8805,15929,37885,71489,33483,29369,18273,23611,70834,69095,62445,35630,61084,17200,16601,94376,95832,23608,39597,76519,24838,79179,39456,76814,21465,67170,62408,41336,79892,6244,36858,3297,29025,91295,50046,54647,75980,95435,5099,68784,69817,453,55559,58568,2071,43436,78029,7898,92615,35483,20403,87884,93154,59224,45241,44622,83272,53929,44245,53478,28425,57814,52534,82502,6792,31035,16679,38226,40447,58992,97242,21876,51616,3052,50978,92766,9085,64941,21002,33880,71268,75762,61312,90041,78079,53528,59734,63618,63716,73483,66829,78832,13646,3526,44323,44042,4681,38036,35044,76692,63085,43936,11146,89867,33000,58413,81483,50824,80356,82692,30757,39276,56526,77738,31893,35893,17751,12625,17185,77912,45770,37334,32080,70952,51210,38726,71159,65953,93816,52432,51830,686,58188,67364,66371,21710,91365,24297,70606,32445,11447,16709,19048,78478,79180,91731,20770,68385,92122,45121,6759,12204,81821,10499,63911,57540,11728,82296,77976,7388,86968,7556,9190,49471,48395,85629,2786,12014,3887,42141,89174,46288,29459,2504,24359,76814,12726,96772,46195,19266,18,76667,15732,34199,42201,79557,57608,34915,62864,5677,87340,49114,20034,14209,70545,74452,7487,72076,63339,32340,78490,69129,21992,73137,95202,35113,13679,82271,74005,71018,70951,29094,10529,43558,64788,8355,71689,34257,50611,32748,13196,33686,2624,43715,40171,24269,82225,47154,81762,57880,17723,59452,26244,81362,86267,3196,50316,1885,90995,88637,86022,69645,36844,81373,83375,57408,67861,95321,67731,23778,49237,36671,4698,68942,71201,46371,8729,51554,5583,61983,328,71815,19569,30139,82484,6018,3354,58818,9080,66152,35878,80724,19288,33712,41513,5607,50921,26741,26308,74350,17914,34801,36556,22707,85863,31050,94686,12396,39652,29312,53278,41026,96424,29891,14163,42984,35171,89678,19950,34280,91384,21060,21729,1844,47718,31848,25146,45165,67315,95787,96450,71125,83409,21899,66581,37148,8759,50985,54156,53217,31837,27494,509,3295,80038,1514,16331,85684,6391,56364,11462,12627,58286,52878,91725,55673,46396,94128,59180,58351,29612,38581,21680,65654,35797,54708,4547,70225,65435,35225,88059,77803,67342,48833,9980,84991,51129,12842,33370,62892,30095,35955,31243,16333,74933,42854,28525,77614,41535,58848,4249,37989,4338,42805,42235,82658,48376,28066,78995,26536,42629,33687,54722,83285,12469,62995,50489,76597,38521,56114,27496,42762,23412,77696,60810,16919,37861,78201,84537,2133,54174,7714,37141,28567,63133,11055,2925,83502,88561,56467,18111,37075,14648,74815,55547,80045,3576,92603,19718,15573,6121,84321,17495,58682,85059,68718,37971,51555,41901,18847,89449,78476,5943,2537,1650,16984,14091,75992,33284,51264,33715,39303,94116,53453,75356,65023,90853,69406,16433,58073,88153,72064,30441,20153,56079,18122,42654,36964,49902,19407,27204,71879,22076,81524,49033,22524,58163,3732,16366,28923,45277,89573,85446,55864,19396,22025,27133,63721,29539,48857,49133,71888,78469,47169,2276,32894,87049,53311,95951,72129,5297,24988,70542,91905,49222,53694,95840,3806,16378,48363,37786,93935,35092,842,35221,32693,13519,43027,26081,2316,49543,39918,29608,39716,63552,21730,52318,83776,62066,36430,42772,43920,12395,57112,18002,76687,90391,29852,79507,96069,467,3711,23922,64574,89347,4166,3723,70738,40883,52397,3239,21724,55204,56659,84370,86458,89434,62736,10222,40195,50605,28943,92749,96321,48057,1854,93165,72757,80167,58464,92838,5340,57243,21793,34210,30701,82427,88377,55119,75059,12352,84335,15930,24657,69523,96916,69490,55230,28447,36936,81641,67103,61568,56954,89568,62790,93156,4295,88264,33179,65220,72463,15669,13104,63285,88420,47829,21900,77206,95080,56717,21365,89312,72402,1537,49048,567,13090,77275,96958,9898,32265,85125,81159,84823,57743,63417,92276,33255,93982,95691,48125,41617,51446,6381,96865,8547,44360,17604,72700,76674,16602,12106,5201,27427,70728,59845,82305,37532,66766,77155,2891,11056,31924,34636,31136,34937,27239,81895,33757,12789,53447,88383,52217,37586,27343,48197,59176,96291,14880,3730,64074,84021,26129,48124,13095,62818,69180,74188,69034,78807,80243,7367,56313,23329,7490,77103,11867,89340,96981,1466,59329,53974,26330,40749,92766,56032,97565,66753,37177,77289,96048,3389,56846,34712,57734,36299,20180,49213,68577,24247,73493,440,24235,20537,13838,91416,89861,35599,14499,51660,5956,10836,24925,874,21670,18591,75750,48202,14195,22085,15023,45987,66170,77392,37289,25177,23253,25148,10375,72195,27193,96099,31656,95084,143,48056,73064,84461,31492,57293,26454,83674,11650,72189,5891,58122,58546,60744,82148,70794,94914,49279,30509,68473,67686,91537,54379,9855,89347,63950,24622,20206,12808,35956,74789,45947,5502,26028,90075,84865,9868,24333,88104,25386,31492,49986,39587,89660,16591,13192,12913,6987,29474,43924,48938,34759,29780,39640,66870,71146,87164,11747,28764,29185,63444,51398,46974,68826,56056,40028,25205,45208,68734,2189,32781,13656,81859,70084,43677,76471,41050,20361,84615,76584,42301,69240,95836,64193,20,46381,27958,52064,88703,36743,83766,49603,57284,86110,73782,87213,44324,64238,89775,16533,35890,38796,5499,35511,77431,18527,2370,23769,72524,86747,48572,66146,20080,34115,93714,41841,48071,9593,67625,4815,95578,10845,21696,66820,34935,37521,7204,32062,50763,83583,38233,92672,90441,48769,57902,19712,24178,35262,64132,77178,52101,17550,14233,19971,77631,56479,90282,91886,6026,5362,16003,15908,30977,35534,56218,38731,76953,55649,25604,59447,86328,91855,38051,86961,71366,59696,57394,25178,87187,2261,6120,90538,9359,5140,53112,23771,89564,35230,95496,86502,5242,24475,25402,44031,93142,20356,9893,95111,89965,851,40783,11964,43930,63594,8885,51767,42710,73734,37013,92635,82304,51136,37932,3419,80939,34347,43855,41710,69655,23735,31012,54911,12974,65056,353,87698,14314,51761,15463,26611,43824,93218,65250,72304,10242,570,53916,46039,83911,32140,63851,48371,72020,24944,2096,45704,26567,28076,72054,94,84780,53974,24575,66930,9929,18843,66579,87443,56852,67238,18647,52235,89120,5478,78095,8058,70557,50219,68000,42521,52362,82356,36607,30838,45991,20904,63056,30533,11575,97139,213,36526,33295,21047,81509,87115,1680,28831,49678,56009,70660,27228,74724,72744,81811,43720,87608,35142,42250,50438,52739,83275,10781,4851,1675,48095,14070,86479,3637,9992,87415,2967,64876,38930,18242,34717,71664,82518,27182,47204,94933,55530,74296,25145,55947,24320,46709,124,55658,9810,34561,96371,62722,12491,1741,86283,70058,36459,23747,1668,89434,4670,55579,30017,88163,4231,96093,51482,32753,15846,76251,15681,8097,44895,12750,8326,77010,19679,21674,54102,75692,15817,84270,52278,51479,57829,71209,36473,59253,37096,75229,42797,13722,84933,19617,10628,50050,30745,29327,11998,27078,82500,82826,25003,50133,64654,95648,6647,17981,88682,81006,24084,34657,64927,81012,64944,30107,86160,90880,64067,2256,72425,59780,51840,85259,75478,22145,89407,48100,78641,13784,91788,39128,54388,460,81989,63463,88102,7268,51416,61184,96859,50041,63910,17695,10986,22867,90989,37856,30798,3842,76803,84402,20355,35885,40837,9588,60240,88158,73560,18872,84002,66755,55105,24695,66626,74279,10807,75605,67595,78790,80060,11309,59228,20858,71595,88151,95692,64812,71892,10012,44292,19336,29773,59636,61758,13064,56499,23123,96437,11614,53012,6967,85519,50504,96547,11383,94479,80938,96599,46884,79657,63571,89727,37177,87271,43667,93139,41634,79482,87651,90059,40622,44352,61533,80084,29835,81099,11332,41942,54997,31241,52769,44960,4675,92124,56904,46156,26031,57842,32964,14720,45326,81859,80459,75627,60313,64141,80985,57448,68200,82718,42774,70367,55202,34166,54281,59556,83262,41982,54025,26834,63320,34937,54923,67800,12579,4450,93137,18942,81280,68402,87032,97551,70339,24469,58948,63526,31101,88417,3070,61101,6929,52068,20205,58335,73669,3259,65217,16238,25277,50173,60523,3663,72861,93400,84258,25145,49586,49025,31645,26268,90520,52720,72444,82371,64154,36556,64792,29115,67464,56068,87818,20454,59163,37311,43766,95892,10734,13772,34472,15575,73682,93273,65426,35485,33281,24418,73185,35210,15509,59067,57401,74113,43833,63820,3455,55277,56436,47810,93862,78445,22139,84830,37298,9189,22203,31570,53863,93408,2438,46918,6068,88231,25960,89959,41404,51144,10803,10562,20281,74792,12672,44599,9052,65541,5295,42984,1513,34565,57296,29634,80122,62840,53133,34755,30581,4336,9167,44082,64359,49066,19321,84327,67867,20906,76766,5196,72485,12002,71751,67697,29837,1336,33361,18724,75216,91652,16609,67819,7053,80806,48194,45797,37751,4307,73051,10397,19963,16025,62386,92783,12473,87542,88149,41143,16823,95547,55260,78847,45879,65509,9927,28377,46877,92858,1755,49867,93479,13344,87539,71089,18293,91310,10962,72180,83107,70927,35907,121,8284,94309,187,43671,94906,87857,45195,59456,68938,85228,55179,24975,50787,59653,5821,59231,65244,39667,66629,59054,13774,70522,17719,7524,70753,51964,71113,43036,28422,72518,41960,50334,95617,47181,81090,38264,13877,54242,31382,88825,32406,63575,71688,17021,50893,30101,15957,86586,48141,61566,75038,94716,51386,36468,93303,37328,61710,28404,17760,74259,44566,23965,77071,84423,78007,66385,5137,76004,91252,58788,44849,179,63526,11181,8796,51791,12788,1396,90980,13724,62958,25367,18898,16008,663,91225,70149,647,18783,80751,63466,4421,19503,23439,55983,71933,70002,88167,50018,43219,75940,75480,43941,90815,80278,89617,23177,93154,88190,73884,83442,57794,55330,24390,84922,84025,55186,42134,4289,79197,63650,54447,45652,70867,83711,13409,88560,95713,47761,82879,92434,46269,62998,73639,10493,62925,14240,44685,19164,38133,39542,25605,48842,92705,73029,75607,66520,92896,61529,81238,64334,57871,92975,30686,57148,82910,74107,16504,60482,20078,48608,66732,30719,15135,29436,36127,5185,40771,17305,34326,95726,43064,20396,69823,22544,48813,1331,13744,52443,52610,33298,47516,59542,44924,72944,77300,65800,91311,60812,72439,53925,59792,21189,65027,61114,21548,62099,47540,49265,69445,66435,14718,10117,51290,94736,96060,3003,34789,31149,21500,27465,28258,21455,26573,20070,21895,16933,42816,80531,89375,13908,79696,32608,72045,70091,23958,76307,76408,42900,27460,82504,86427,58920,34723,82370,27817,50352,56342,45210,46556,84464,58770,91697,13932,32854,75371,71878,39932,94574,17240,25935,95139,93215,62603,64528,74873,42496,44403,53537,52842,47957,3761,83274,3493,56809,27644,70140,65428,46806,32624,53105,45080,9071,32346,93901,28863,62511,8851,91594,48791,42279,58838,51110,701,14224,3052,1978,78662,74431,75619,18776,8021,20796,36110,42693,86672,22451,51786,35973,40987,76365,9453,52364,38884,74715,60511,61527,30745,71699,8518,19240,2640,86,85417,38238,71879,74170,74153,51080,67745,75564,56303,35613,3564,91674,9775,25649,15907,58324,25588,13012,18622,2515,79329,28733,9952,29222,75584,26789,81187,75653,67842,7667,69818,27139,20108,67044,76634,41880,94399,25133,80470,59848,10462,13780,52475,78064,55027,53491,24920,34557,73185,33310,97381,25540,20917,8521,71293,23014,25392,57010,77744,11035,64649,51110,28669,14689,8418,18271,40712,78694,22884,24520,37697,77817,71067,26864,76847,90984,45232,4056,35019,17393,52082,5223,19769,80648,54095,30818,92427,19518,79060,90679,17960,50037,32584,23707,46547,30816,3682,64394,89010,41814,20362,68728,96192,47668,85867,22378,96943,33748,76333,67663,4804,73364,65177,24696,60009,58292,63090,75753,37653,6131,80984,76050,28619,79667,24015,31819,40031,18158,29450,8693,9066,35607,25984,40095,95238,68984,64751,65405,35814,36298,30996,17059,73887,26286,80331,9428,29555,75426,68045,37662,53805,83183,44579,27263,5393,40794,93171,5350,6232,48023,14740,81768,95349,25320,39543,91990,96174,48462,68835,46432,48535,59229,24650,42067,46677,4875,73959,36417,78386,88909,41420,44120,78452,6527,47854,96430,28887,23477,96039,76282,86225,7032,46874,31616,17260,40061,84056,39643,74288,58317,21725,92638,82193,44003,20216,33414,75261,12607,47199,27921,49501,23326,68560,66067,33679,11852,35272,84514,28797,89514,42457,2322,5212,57314,34021,78427,30022,35383,33994,81838,81150,49329,71612,75463,91028,7124,63350,41988,53286,94864,38980,78923,65227,4388,2830,62149,19844,33314,59336,43373,46968,61805,36194,91634,91194,20718,97111,93415,35710,4234,84876,96489,37316,606,66330,77720,84218,70567,59120,62442,73427,35796,65459,25575,1351,78804,15643,81302,93044,94840,76009,41456,2863,58996,39142,93033,39750,19448,19626,37504,83551,65340,61847,43185,52577,66965,581,4034,53254,23407,20722,38051,75639,53470,30918,10868,2768,56283,62899,36420,17027,64208,9063,77208,67027,64797,39526,57075,29383,69367,52015,27693,97523,3134,86534,66835,50671,36422,35080,76578,38089,70515,80841,16700,72314,12552,19144,34422,59023,328,26575,77264,47415,73646,21551,94135,34347,47436,38000,38640,4975,86081,20943,11468,56343,97442,31099,14799,47563,11617,9265,87265,56715,35995,12102,31793,45868,60961,78911,79082,77109,80869,49772,10528,25724,15617,62804,54879,22279,11128,89223,14784,64342,8562,71230,7494,48481,43106,80182,15927,88232,71330,91272,17845,24735,71491,4562,95437,79710,88454,17454,66032,75662,84117,86237,19786,78491,998,69343,43350,19608,31593,31061,79863,26941,46923,31506,75769,89437,18974,89776,28057,47693,85389,34072,20857,27405,96934,6814,49327,43306,72709,56007,74709,27115,48318,64880,47471,12380,60636,78265,82050,30774,10649,25145,24412,67831,48782,77004,45837,38738,57139,76186,8876,47479,41242,57295,20792,11618,49748,8866,46663,13292,33008,61093,2907,28061,79445,25864,73660,1196,3042,70288,78501,77873,83361,82460,5307,46215,22620,31460,91788,31782,30267,44901,48014,2945,48687,27124,43042,43608,55658,87189,40900,86019,65910,8295,37528,88410,88735,73562,719,25322,79684,93012,66722,51270,58172,50990,43361,48823,77890,24112,59023,71156,61611,88448,29608,35996,7798,43598,11607,94065,65058,1884,36934,92252,10029,26742,90996,64274,24070,61823,42771,68204,57220,45278,4757,60784,75272,5917,34915,12251,13938,43454,90041,44852,54902,38746,49948,70938,70331,28517,95930,48272,86463,18467,81850,66929,8861,91870,38959,62,45836,43576,71722,62138,60446,52152,37964,47078,7281,18030,18481,94811,88045,48579,85389,80382,36725,10377,29823,51600,7988,31578,70241,15718,52085,95357,49579,16623,52325,42593,68312,9366,50102,15211,76313,88838,39520,45208,73100,79588,81388,2621,87377,41264,86202,18425,1939,90028,91079,77484,40835,83598,15949,46863,3018,71072,1423,24060,72774,9902,87916,27764,23744,10597,65366,9828,48868,40942,24695,56270,95581,72410,19845,5626,7157,22359,1471,32683,75873,10312,55550,26226,34943,83440,34661,13950,21028,71432,81182,10326,68335,86187,56359,62217,6051,31384,11845,22572,8319,2072,56431,15352,71604,52510,91134,72107,85707,79372,915,82519,10331,15748,64172,79615,76038,95632,89530,33959,53544,50402,68284,65840,37195,27821,76478,47640,85770,52879,10898,84345,16478,17322,83852,67257,65082,69969,23951,92912,29310,37961,19989,47257,76190,22005,20681,16866,44412,53848,48998,72257,44079,43272,56962,14583,31312,42839,6297,93672,3232,75724,17643,50747,37438,61128,91729,52591,19717,66125,77683,79232,16509,86912,94741,96762,31401,44688,12746,91010,50676,34353,40377,34592,48238,77396,65873,32427,84753,69287,77236,48086,25376,37113,45498,20648,3571,83736,96106,35640,24199,16240,59602,68999,23722,80152,42678,43769,1835,86242,48368,74263,77856,36058,56180,86740,67217,37598,70662,73182,39812,61761,91329,853,64624,85465,7611,66996,45232,51910,74353,53833,11389,9182,93605,472,26682,51027,87904,49027,47672,7276,7281,35545,53220,28759,23190,20304,44307,66625,57336,64813,55850,31103,40214,61699,31459,54923,89424,27969,1122,20170,36290,32354,9059,10195,40510,74576,16698,82598,3667,43654,67097,43697,8607,17803,90588,86564,5037,75467,25794,42853,27644,34581,84062,64589,764,71363,85586,54547,77408,9915,32432,78931,81992,33782,93137,14257,53271,5159,83302,19004,78632,2554,23218,53746,62431,62430,16898,57983,4687,93580,1752,80409,70602,47281,63915,22614,14448,73664,97107,39379,55830,64180,50078,84979,72625,6440,10000,58079,6557,85611,65014,57077,70409,57011,33186,11741,81094,94074,7829,24579,93444,59374,19706,47979,14358,23182,84845,46686,56632,84311,32827,33258,74976,85745,72388,91916,96164,27222,51590,78010,49973,1344,17349,49892,33406,42480,57346,4487,36274,55702,48698,67746,1459,16840,86371,46977,76601,79510,11337,23280,30332,9565,4286,960,81747,79246,27722,47997,33285,53874,65387,40003,17899,61679,3038,78211,91040,75510,15726,57258,77922,69772,90067,29418,27862,95888,63506,81789,15685,80730,85836,34134,86187,29074,67208,18400,39266,27908,15296,91263,33338,81952,83248,25062,23420,79308,86965,39835,86771,32254,33978,29022,41882,81420,27297,34398,51766,41213,43004,26647,23113,76951,20960,45214,68924,88559,13169,67994,60465,52473,14063,83959,92217,18329,35695,67647,40458,5278,4584,42860,1726,22635,96557,39418,34068,45520,16641,20079,29836,42549,5114,55709,92194,32070,7583,33610,79693,32614,87045,86593,50073,12094,81124,40087,12868,17541,54024,81769,82021,27461,16616,75894,14632,68223,26617,14260,33279,39117,46538,18491,1977,83863,82194,79486,6989,36437,34804,16326,67779,94763,16364,68039,67276,12188,53729,1325,28763,39481,61038,27246,67737,57045,78326,44606,1052,29480,63920,91136,65340,81220,42529,75523,15975,30402,28827,45125,82856,73761,82716,3368,46639,58910,3046,10326,75127,32597,46760,21352,75166,17088,36656,2478,75946,52026,21769,29821,71518,84609,78077,15048,56596,70253,39547,47192,72248,21414,71446,19409,12440,2671,19902,45202,8206,4819,84123,36786,945,62618,43954,80703,50093,14720,94218,10545,87273,80856,21186,20201,23737,47066,34610,26672,71130,10574,94811,43792,841,26418,87942,21603,1739,49386,3886,23883,24835,90748,46842,81708,22909,52866,51996,14661,15612,96815,76163,60130,54633,28860,9489,74138,95116,54808,35161,93362,60974,4528,91726,66930,37846,92732,7486,50688,60596,49704,56009,94656,48583,22353,87881,47521,46249,48518,33696,23219,18494,38532,69510,85736,77855,50386,79565,66773,3483,92344,9557,94286,66921,94811,52333,76977,60317,37861,21671,55008,48839,38869,5440,37451,1947,70333,3351,61544,63578,28077,50306,56414,29157,67831,58055,69135,47813,76471,34378,50826,8771,71996,31655,31038,55866,17948,11934,79142,51726,17910,74779,44928,81295,71856,91139,21713,72296,35477,25324,35549,53847,62978,35296,59306,74273,93131,59427,61377,69193,78237,9190,93761,25787,61914,60705,31337,51538,31348,26514,54234,68405,173,10766,51923,84590,18541,71864,80875,93687,706,26356,81318,40896,82402,72669,50869,5509,75414,5549,90229,89773,69600,17446,53026,91472,84830,45743,63454,19020,4315,41732,89078,40081,46189,32071,85318,23241,22159,89866,14570,45960,95297,16065,24388,27707,24232,70445,54841,32104,94501,24075,28027,35372,94478,96532,5342,91853,36108,27434,48229,96917,8755,12594,94926,33538,19446,54185,97580,10214,27197,60092,94379,67215,59248,46726,53525,86158,53669,43119,21260,21480,5523,69989,97264,68102,75803,91024,27589,44404,56634,12889,84967,7427,80655,71225,29806,87706,26466,92577,11803,25158,84143,88998,62286,13639,11476,47577,59671,89829,85127,72234,41153,23569,11741,25576,52018,96151,689,67196,17634,46703,55274,41931,91169,64419,79084,82202,66415,88150,28765,41289,69099,77213,34742,54501,58522,73185,22934,28736,8735,74215,28208,30988,48054,27502,65320,5092,96327,92520,7058,79828,72460,56394,95864,22015,97101,80664,32156,41037,47934,49941,66028,4390,95090,61500,95037,44288,47094,19499,72094,4718,64988,57113,47037,53955,56997,67018,73307,17955,47114,11834,36902,50218,33188,51212,76106,8650,53774,66726,13788,74895,67309,21301,31850,12505,23119,14848,84065,92526,70474,72045,60036,31458,53070,65562,68175,16221,14383,59318,9073,31923,66471,61805,35602,22959,53309,63246,93323,28536,69585,26689,76760,73009,86501,70481,81293,4493,83786,91146,6714,41072,42309,86315,48889,84309,45777,3334,68731,78672,36140,9913,2352,78346,12604,82354,41467,3915,48540,95560,81906,43880,49709,18738,77436,21932,56785,92555,65144,17334,40813,59242,6295,38811,74644,35853,16010,68972,55094,33100,2983,9111,69019,12987,15772,24934,91389,73433,65514,94071,32635,14972,39750,40356,32945,49555,3287,27914,30557,90979,86412,87151,53497,94194,52229,67086,68608,41199,57403,30735,17363,22401,19646,83908,29948,46460,60951,44817,47862,95119,60525,35432,37836,92031,4229,95156,40612,90420,50856,76234,52340,69122,11747,69523,5033,40875,16060,51227,12363,91690,75714,9021,51663,47426,47624,31425,77942,3504,76829,94278,22346,31901,58658,72848,75570,82797,48473,23798,38886,34509,83463,55499,86855,34380,1239,31395,96579,27653,49728,73094,93396,3538,91662,9866,41139,94189,62847,20314,25882,73012,40674,96859,18431,52313,32643,16781,6680,95253,62893,21814,64088,65975,33020,56671,68624,4605,82995,82697,31414,95761,66911,48779,14666,76794,3798,689,31442,60020,6006,88862,3749,82638,97300,20255,45574,95184,33507,82537,89652,75215,87199,77433,54691,18549,50492,32125,15561,54571,111,51462,8048,65772,8964,24160,19009,59028,19910,50378,4611,56629,15603,64689,20441,16591,17290,37389,62999,35618,87582,8444,94917,60861,9510,71770,7963,52026,75082,30805,33774,23951,35872,85511,5386,86561,31053,39476,69676,51616,58328,51196,18346,47648,71529,81806,68518,97140,63364,24344,20683,65603,33022,36599,16034,12388,70256,56346,46546,93646,10247,73173,60966,43821,63879,73255,44095,3978,28139,72809,62820,44310,5529,10982,96318,94000,53245,57551,57538,55655,57419,17108,30945,64747,43823,31358,96414,20174,71959,41917,15374,64327,64651,74885,5355,78742,66682,57684,6451,65048,36469,14253,48703,81214,38150,23878,33946,52285,46653,64499,77922,43871,88254,49522,77695,85779,40930,28760,65135,92866,76335,65073,94992,56009,39897,63908,12857,92796,8285,64959,70066,91345,64305,8826,23803,86712,79665,95436,35329,32137,66744,35491,72385,90908,70654,1180,21514,38244,36664,4979,53729,20869,227,78954,84339,86161,96211,66819,88747,58449,36628,28332,91394,19372,41362,60095,36909,44683,213,66338,10238,91430,12493,31925,43204,25781,25528,27055,37988,84935,38500,45825,80077,53740,92911,33323,52784,58432,91172,22961,89110,24274,67755,93880,30880,89752,16912,67054,89370,19899,65072,60795,32358,35678,591,88646,19086,10708,69482,19504,61929,70545,63720,30558,25003,36034,42252,97209,67278,92290,80607,53509,33588,96566,69105,61338,80829,31576,85405,27194,69643,73355,36435,4137,4967,48720,66161,10889,57860,96258,20868,64989,62568,16296,54760,68077,5473,41508,24479,57160,68173,78554,12197,18550,48267,3786,29736,15408,91760,18992,28402,56205,78894,90884,40686,9125,20697,19531,52255,68456,25321,79112,37851,44615,21532,85340,29880,66489,59754,18639,85839,92458,53039,29729,65907,288,96333,6076,19524,76458,95385,28973,83845,28703,35520,55152,9546,22335,90328,21610,17168,11274,53261,36848,41186,45211,33404,40855,54282,91992,47837,64760,6781,11107,47229,34047,81776,9858,13584,81594,70898,66100,47051,39735,18172,80395,73904,26228,69430,25018,16591,71586,68549,16266,86224,21007,11609,37211,64103,62794,79229,43296,13848,86573,49675,61740,97151,77899,21616,94445,38265,63185,40125,41772,18287,31971,18790,30625,10692,10592,88724,75169,51040,65860,43867,62101,86476,9830,13104,51774,14190,87965,70050,59293,49382,60071,96372,87974,78968,26151,7031,12412,40876,94293,74872,51759,31192,75478,42235,60773,64699,43819,36547,36088,34646,59615,80871,571,14481,34490,11563,43556,69316,96545,72575,32031,29125,19502,82640,83321,95594,70561,62456,71793,63654,80966,75816,86579,4196,67093,79198,61830,24831,39418,54155,33065,38052,1636,82270,5199,52204,27549,73646,89902,46274,47991,17223,41936,60834,67116,33519,87618,66844,45443,50575,88731,71889,34419,75123,26453,80101,54447,7581,9419,10641,10770,33766,73515,19830,22225,30344,97503,69343,11979,60752,5237,31651,71750,61972,25544,91409,62877,70385,96547,57288,7915,8738,59769,81252,4505,15974,22982,50989,93032,39387,91643,88772,78539,80323,35583,6799,47182,71868,32525,83682,56721,46049,61384,32710,88858,63043,42441,68658,80633,91853,8392,65453,78058,30713,52716,15273,80766,24347,27246,57419,11642,38240,55305,66682,82552,32216,76092,10629,44864,31959,84757,64092,58694,45470,90899,57642,93761,27606,18604,52335,27070,37426,16629,2908,60489,36853,28463,82923,4584,66239,33665,55635,58069,45442,75683,76574,20339,78286,97391,44208,88631,72589,9193,26590,77529,16870,91195,68375,82209,43618,14885,71729,74348,42303,80309,74361,73333,94923,38717,5400,52534,88346,83970,82602,80783,29353,9360,37247,15275,75455,25930,80609,81519,16150,74442,35083,40888,43368,69094,45931,35996,72800,10498,58210,88567,1898,68547,73209,78818,69596,38584,53083,18152,54314,97230,8963,95204,73787,96552,31921,85091,82006,9542,24192,78585,62647,39296,18877,10542,55168,78170,8386,14919,95367,62011,19865,87892,9438,34469,11003,89181,13620,11955,48890,64273,85402,32633,45830,37938,88343,62020,85919,81452,85735,71787,88984,81169,36981,87471,20107,30574,19204,17194,80865,24363,66092,10390,96078,90938,80539,93773,70450,31300,77424,28886,39442,19129,31728,89186,83320,58223,6676,72567,11068,78792,95707,31558,44487,2850,71772,82036,72075,93700,2985,84888,62177,13414,41562,32689,67780,2126,90531,85163,59740,55958,80898,29673,94901,19192,85887,13197,86527,63390,42589,27463,24684,22753,87790,89166,8178,49366,24925,33961,46468,81339,80986,2489,79802,95127,19982,11113,52853,49429,6194,91134,47827,78999,93541,71760,29035,3074,34881,38115,26380,4261,16297,52764,32319,43550,84962,89842,67961,14693,26225,70651,55646,13993,42744,57963,90210,71783,63468,66240,97276,10894,76773,91879,83963,88316,18542,79811,79738,8350,9669,33990,742,7979,92002,7459,85512,53960,26516,69548,68807,38570,15638,19038,39335,75487,48673,20500,65975,79174,62770,32861,11929,63077,61569,44088,82854,13655,51556,29527,40295,12748,58138,27560,73890,43680,34948,76200,72933,36456,84365,86947,54002,72630,82804,33161,27997,41597,71420,18974,90750,2236,62113,15192,6047,20667,19900,62432,6896,38526,33394,27230,65527,11221,94948,40701,31311,2161,94085,73850,34217,90020,20508,72740,5555,1740,53697,20062,95491,81977,6970,52656,34181,74730,87035,18962,541,54599,72610,12079,47515,57370,32224,59023,61177,23868,14998,30104,71805,57123,83885,64811,53178,66542,81615,15429,69877,69001,72890,18425,53966,92029,726,3254,50505,14619,10432,79501,2895,79949,50982,35393,38158,89923,11669,80440,49326,92119,90220,27461,15562,60008,63637,35195,43772,70472,63362,25661,85012,87161,51022,84403,55287,86072,28198,82984,3183,7496,25697,78459,63079,26733,74083,44461,35092,75838,82687,54516,76537,92731,65951,16686,21159,55521,30638,92969,77906,21641,2105,65689,32125,65731,43019,56260,44815,40103,54503,35032,35182,6400,61881,84100,62521,7166,86334,13958,50751,548,5091,83297,95277,85875,22657,96466,69894,25347,96678,89850,7041,31129,31017,55511,347,12756,83338,24768,91488,53691,4157,69742,17325,74788,30544,70073,39981,27365,25130,1216,13006,1353,59183,66331,79881,65861,27085,39863,27830,21068,50366,48400,43169,788,35069,36335,79341,82265,562,32353,29360,3857,5897,9099,60900,26542,89023,40204,88144,76765,52025,79585,87312,75850,71450,55875,13889,92233,36817,31069,24882,12607,74370,23368,25684,31804,80634,51875,76136,83894,73660,21613,49359,26645,81498,27604,24035,44745,6027,88780,35649,56940,91566,41366,88100,53973,49451,23647,67304,66185,15976,25687,9192,30058,62949,20963,50037,1154,12228,19640,4947,19418,25696,52188,38264,44783,23194,21932,57154,78846,79470,8928,96327,23601,25157,65882,39380,82975,91718,96292,19995,42511,22303,46848,47076,14113,7634,84187,74995,88667,71760,57192,59980,12661,32964,43891,19489,42953,35856,25625,15745,76470,3794,22850,77312,24789,39662,37130,93920,82940,54707,58238,37131,50632,89767,59112,68017,9244,82937,3856,41382,69803,1186,88992,30257,92966,59929,28372,24162,24012,86625,92531,27941,79031,36129,90432,57054,28434,7255,22687,13811,15657,78227,42319,62911,75060,77756,37524,38388,12937,24938,5046,68153,54058,27592,69562,13341,70114,84593,34288,49607,41504,26158,56552,17581,77459,43277,92957,11057,53974,5801,21525,81283,96817,68898,95180,84615,17872,91482,31866,90451,7646,93089,40443,53369,23838,71557,46338,78857,89011,53696,45804,80631,34133,13001,63648,8960,12775,44140,97169,72465,27524,92290,48988,38936,244,48634,29409,15172,48979,81757,10930,2299,60443,88996,58482,37586,86484,43975,34116,36575,54786,33857,94705,76031,53207,78201,17993,73820,23195,15318,60666,14695,15720,38813,18106,88807,21000,44535,72911,79987,93766,89634,25078,14075,16497,88154,22878,70850,11314,84963,15274,45688,40431,9090,78320,40416,31078,32785,49964,31884,63943,43671,66690,43644,52016,65348,87047,52263,4951,35972,82744,85795,17376,11575,58606,78579,18891,66420,26367,34667,1825,32336,9405,35373,88619,28009,77763,30467,12478,25901,13408,78676,95076,35745,77026,12667,93438,10804,94653,18516,65573,71680,36558,62712,62785,35213,24974,21757,45323,20074,50388,87653,53518,80130,86166,86060,80689,84738,90853,95558,9576,56101,18999,60340,74353,73747,70840,89788,44046,63875,86245,84241,30861,29227,45082,44175,34886,9343,26163,33943,43030,24578,61941,78861,95793,61958,74620,65672,37454,95913,57085,68518,82821,27991,72197,54305,21261,8517,3462,17009,18167,43345,67436,53,49472,17018,81578,10953,60502,59062,56260,24370,63072,40680,18011,39746,10388,10955,81347,22838,55513,11108,86685,44853,94802,78244,42761,2576,20234,59408,30444,40065,83026,95633,46419,75701,1374,5165,93535,51731,64259,34901,55946,42805,75852,46920,89225,91542,64388,64642,7608,96034,8006,67241,80871,6949,4142,43652,76395,48209,20264,28048,48601,11728,78249,24802,60048,25325,90704,39347,29961,42694,18636,18218,76689,73503,21947,50471,33861,26725,8753,43967,69737,28272,83783,12474,69328,95676,65668,25602,43971,29099,12730,86119,38711,95012,88285,59882,36773,41319,63064,94478,74402,4785,67784,64416,37214,52284,87252,27784,79677,29885,976,60885,18810,70505,31615,19498,62153,61474,16171,11971,23163,8023,1789,73751,16685,36041,12337,54215,74417,20917,42699,66238,62748,10739,32528,24638,83342,89328,24831,58030,82696,45150,85667,84846,7892,64846,65670,35339,76780,7305,12306,97324,72896,13151,45946,20073,79984,11881,25549,7462,16299,49857,11798,7072,30687,6498,84568,95337,96437,17405,70653,1637,64340,21035,86824,6218,69322,52543,45678,82318,31833,72491,42271,55504,61949,72358,14874,76253,20871,7977,80273,79962,43545,70965,65955,53235,97555,93737,15668,38799,78275,90601,27423,74725,19139,62458,92859,28404,73051,33055,63415,48096,86168,89747,58588,50971,79183,11809,28883,93103,81143,19013,30338,80020,5152,55804,52461,8439,62322,57810,61475,18204,21742,8228,13934,86701,76907,59972,27423,29488,14398,72983,7662,57300,88879,80980,59561,21141,65468,3746,27180,22950,55912,47225,23066,77011,88617,86506,45163,52103,65356,90568,47810,33014,1384,84259,80612,17944,66112,88796,56668,8366,22376,36189,87118,34925,64399,517,81889,80332,5631,69567,42325,41270,92138,47696,90074,90606,51485,8885,13464,64701,70117,6172,20638,58870,86139,73751,20000,84633,89875,66206,86524,12091,17272,6467,48199,86021,33556,81373,34574,30699,16647,27300,88102,44119,72185,2942,35462,87129,55214,86742,45684,58004,43484,69381,3045,43423,51947,48915,25553,25105,85436,54078,94106,93192,58190,33915,9289,46100,8840,51354,40141,22823,10841,34674,42675,62735,32662,7171,38145,71158,93191,97093,53307,12841,23382,79498,19080,84538,5698,12663,16783,74934,96221,81655,35996,37238,53254,86845,30356,17844,33158,32391,1408,52080,66591,53568,39528,64516,27450,57145,95738,8391,58021,33382,60671,78383,47393,40614,6497,77646,6487,28900,81999,39067,68832,66137,92872,34981,1613,64121,48063,72315,36257,84548,41735,375,9841,4891,84197,33598,34434,8755,88015,46580,35675,22596,83598,9174,35826,46253,48555,31949,49666,876,46066,83709,86117,65264,39222,96418,73191,58514,23129,27011,51996,76903,6205,31970,33661,38628,45018,53712,85284,52334,88454,19155,49669,31609,94150,54261,8386,10278,44567,53009,65167,39440,75812,84706,15106,53139,42719,21182,89763,38134,43175,38477,58491,68898,82515,74920,52598,10340,87104,20659,91571,90637,7012,33311,24004,53356,51389,27751,2527,94538,86170,30902,71210,97532,4185,94830,1799,9274,316,62350,55822,37170,78673,65920,57446,82362,87415,61368,26335,79143,28033,47591,76501,38268,61311,92678,23108,76672,44865,74066,13333,20717,3173,54720,6816,54877,67544,96598,38571,25499,41426,40670,37655,1350,66809,31648,95987,27595,22450,84091,35782,81276,18412,23862,1025,37829,72853,51454,53885,6909,25401,24749,91989,4204,39942,24864,89172,59233,26653,16673,4899,48716,67882,6504,45346,94569,69496,88713,79546,97029,70727,7029,90063,92099,31186,22956,16255,96431,20678,83568,13850,94891,77062,32479,60017,42576,23704,81494,18922,82295,63512,56483,18058,44422,77733,48008,28484,81237,47225,96003,80744,53978,48833,16050,84440,28588,25367,70062,40766,45077,49003,80093,2389,58066,17127,6542,48706,90009,22307,9735,80369,4309,74943,84369,63752,15853,50848,10933,77916,32686,63703,50148,3462,19911,25145,17539,29827,21634,58197,60314,366,19868,69393,92059,31060,58895,92100,10836,2597,6234,17984,67871,20783,2429,81892,17137,96386,19343,27521,67380,6225,81762,27716,63554,59777,5677,85854,61291,93905,21920,53073,95389,29208,801,42309,92714,46467,48688,723,17310,91327,70593,78436,77476,2269,83570,92404,11758,95462,88952,44077,5566,65258,88033,9438,36126,37746,96593,18197,11639,39978,90243,82968,8565,63456,73844,40980,61674,32673,67491,52922,76855,7140,58144,56816,73360,95910,55680,22087,49475,64164,5819,85434,50109,57840,24415,5615,77496,46484,4502,34296,51157,40121,85722,96429,47654,1991,91212,79102,49455,74574,63974,69712,45678,71596,38672,71900,47135,69965,11747,81037,90149,27690,6092,16477,17839,62495,52182,54929,89232,77542,53356,15188,10881,62929,68796,47916,34194,83301,6275,57865,90660,15356,71925,12875,69955,45498,71402,40537,94987,36010,68775,34485,59022,29184,4166,40789,14893,20913,48201,27463,2820,91104,56063,41915,26396,50578,42301,86959,87542,14826,65174,68590,50025,67774,3211,38856,35120,95626,54612,68695,20745,19593,91856,15404,33646,76765,61358,3723,37980,43038,94385,74406,25883,52913,77201,14948,54945,55492,78137,81038,66266,75727,47903,24891,57465,2953,52038,94275,70313,65746,9055,34042,60515,50076,44600,65555,8299,74149,29301,66501,38934,10302,96833,53269,71362,84109,8745,24459,23011,79358,47030,18360,62573,557,15584,65493,89915,18411,30344,89610,41130,59918,19494,57772,56429,22167,199,41978,41969,52162,70355,11513,25951,53241,48527,47572,97144,25193,13675,70537,16643,21745,27059,8539,79816,72163,94122,40250,14082,53043,63995,44441,61126,90003,43532,16361,27305,473,16444,17662,8684,40055,45217,83830,27736,69193,58130,88576,76804,79602,44338,58045,44345,81492,52880,3622,62538,21095,45045,57326,95090,57009,4558,95092,23575,85328,91336,65852,13970,14784,69290,73665,77507,49916,46541,15425,65572,12740,27710,41125,40248,91866,3891,57763,42941,53430,71270,53597,57504,62114,15930,97465,87652,18947,28054,71101,61669,96897,70609,37925,64952,97086,6402,52191,48662,83811,31404,92904,56766,38739,7403,23623,22983,11103,58737,58208,89221,47038,33847,78102,6030,45206,73067,64856,60134,61512,81191,24927,7397,5745,17499,40408,79372,11611,21050,30295,422,23857,91245,49291,74180,91602,72429,9217,90146,15712,12845,79487,38952,1555,18338,79503,93724,92705,14991,56217,42191,80926,63224,74144,35090,44123,2997,56505,40782,41524,67434,66935,89112,37513,56400,47678,51261,62211,60679,78427,52759,30333,28450,79454,56880,66238,59009,59125,38528,82989,71403,73913,34941,28875,62935,64024,27603,56274,48515,87381,50678,3971,76222,6044,77844,77488,88213,55761,21176,16323,90885,95562,87702,65944,67815,23457,31153,74160,95125,37153,92858,73021,45179,46640,33345,34559,59048,47211,5546,60018,58393,26028,45338,34693,41130,51591,37263,1994,8043,66112,84946,78436,38917,56144,37488,6042,5715,70929,90322,47576,81148,64657,66433,27858,65536,3063,48828,59695,56028,68349,46263,26500,56713,69509,73405,42847,75681,4324,88019,2003,87301,88645,13184,28586,43700,38657,33499,27752,20245,29866,19465,83654,66579,91312,83056,49282,10157,48599,95811,79619,64731,32832,20762,38529,75077,65842,62614,23350,16930,11266,10537,14541,39486,24799,46670,93258,80210,64189,41278,47303,47775,97168,6157,37431,64038,615,263,17949,8634,18173,64459,70309,679,10863,94769,71615,38499,28170,88147,26810,50994,75309,56119,6000,86155,38315,91487,87409,54615,78361,67964,71589,73813,18221,84213,40252,64990,40520,28577,29097,24425,75905,61207,69208,89738,67180,62882,15006,87635,6639,1092,89700,592,46457,14873,81949,96082,5873,7363,3996,62090,49672,85516,12900,73972,74468,38125,45035,33246,75550,24179,72060,83516,23343,13102,82713,39033,25524,62688,7163,59031,50676,43586,86683,10440,26723,71507,74906,5599,96045,47384,34003,43742,30556,52831,15074,66045,52464,45698,87276,33487,11526,80444,37588,15926,69680,90122,5644,49656,91833,73663,86536,88483,90227,64623,3050,19911,32185,36803,45552,57560,54636,58361,4237,28165,25964,70752,14851,90985,48559,53115,43010,66992,842,70193,1401,27249,17543,77090,59998,49205,68538,34250,5018,576,11403,79361,17224,645,71988,59014,41564,35797,11169,13819,43039,91032,96626,23900,29868,44890,43316,41835,45358,40584,57419,42549,5515,64487,89643,58940,24246,21337,63577,17058,30846,12816,36217,54225,23375,21342,77898,38168,29317,33266,95681,7613,48017,11370,9338,814,11594,91661,65527,37773,801,32317,37927,39106,6509,29289,35303], 95264532],
    // [[3,1,4,2], 6], // 1
    // [[6,3,5,2], 9], // 2
    // [[1,2,3], 3], // 0
    // [[1,2,3], 7], // -1
    // [[1000000000,1000000000,1000000000], 3], // 0
];

include_once dirname(__DIR__) . DIRECTORY_SEPARATOR ."xhprof.php";
$xhprof = new Xhprof(2);
foreach ($datas as $data){
    // var_dump($data);

    $obj = new Solution();
    $result = $obj->minSubarray(...$data);
    // $result = $obj->($xhprof->tree($data));
    // $result = $obj->($xhprof->listNode($data));
    // $result = $obj->find(...$data);
    var_dump($result);
    // if(count($result)<=20){
    //     var_dump($result);
    // } else {
    //     var_dump(count($result));
    // }
    echo str_repeat("<br>", 3);
}

// foreach ($datas as $data){
//     $obj = new $data[0][0](...$data[1][0]);
//
//     for ($i=1; $i<count($data[0]); $i++){
//         $result = $obj->$data[0][$i](...$data[1][$i]);
//
//         echo $data[0][$i] ."(\"". implode(",", $data[1][$i]) ."\") ";
//             if($result === true){
//                 echo "True";
//             } elseif($result === false) {
//                 echo "False";
//             } elseif($result === null) {
//                 echo "Null";
//             } elseif(is_array($result)) {
//                 var_dump($result);
//             } else {
//                 echo $result;
//             }
//         echo PHP_EOL;
//     }
//
//     echo str_repeat(PHP_EOL, 3);
// }
$xhprof->end();
